import axios, { type AxiosResponse, type InternalAxiosRequestConfig } from 'axios'
import { getToken } from "@/config/user"

const initAxios = axios.create({
  baseUrl: import.meta.env.VITE_BASE_URL,
  withCredentials: true,
  timeout: 10000 //数据响应过期时间
})

const baseURL = import.meta.env.VITE_BASE_URL
// //配置开发环境
// if (process.env.NODE_ENV === 'development') {
//   baseURL = 'http://192.168.0.100:5050'
// }

// // 配置生产环境
// if (process.env.NODE_ENV === 'production') {
//   baseURL = 'http://192.168.0.100:5050'
// }

//设置请求头（如果请求头统一的话可以在axios文件设置，则无须从这里传过去）

//请求拦截器
initAxios.interceptors.request.use(
  (config: InternalAxiosRequestConfig<any>) => {

    config.url = baseURL + config.url
    if (!config.url?.includes("/login")) {
      config.headers["Token"] = getToken()
    }
    //在发送之前做点什么
    return config
  },
  (error) => {
    //对请求错误做点什么
    return Promise.reject(error)
  }
)

//响应拦截器
initAxios.interceptors.response.use(
  (response: AxiosResponse<any, any>) => {
    return Promise.resolve(response)
  },
  (error) => {
    return Promise.reject(error)
  }
)
//导出
export default () => initAxios
